﻿using System;
using System.IO;
using System.Xml.Serialization;

namespace Unijovem.UI.Helpers
{
    public class SerializeHelper
    {

        public static string CaminhoArquivoXml = @"D:\";

        public static string Serialize(object model)
        {
            string nomeArquivo = CaminhoArquivoXml + model.GetType().Name + ".xml";

            if (Directory.Exists(Path.GetDirectoryName(nomeArquivo)) == false)
                Directory.CreateDirectory(Path.GetDirectoryName(nomeArquivo));

            var xmlSerializer = new XmlSerializer(model.GetType());

            if (File.Exists(nomeArquivo))
                File.Delete(nomeArquivo);

            Stream stream = new FileStream(nomeArquivo, FileMode.CreateNew);
            xmlSerializer.Serialize(stream, model);
            stream.Close();

            return Path.GetFileName(nomeArquivo);
        }

        public static T Deserialize<T>(StreamReader xml)
        {
            try
            {
                var xmlSerializer = new XmlSerializer(typeof(T));
                return (T)xmlSerializer.Deserialize(xml);
            }
            finally
            {
                xml.Close();
            }
        }
    }
}